// 这里是关于文章的网络数据请求
// 0 => 新闻资讯 （默认） 封面可有可无 ，默认展示给用户
// 1  => 公益作用 封面必须有 默认不展示给用户
// 2  => 以往公益记录 封面必须有  默认不展示给用户

import axios, { AxiosDefaultTypes } from '@/utils/axios'
import type { AxiosResponse } from 'axios'
import type {
  AxiosArticleListTypes,
  AxiosArticleInfoTypes,
  AxiosArticleEditorTypes
} from './types'

export * from './types'

// 获取文章列表数据
/**
 *
 * @param type 0 => 新闻资讯 （默认） 1  => 公益作用 2  => 以往公益记录
 * @param limit 获取的数量 用于分页 默认为2
 * @param isAll 是否获取所有数据 isAll === 'true'获取所有
 * @param skip 获取的起始值 用于分页 默认为0
 * @returns 文章列表 articleList
 */
export const getEffectData: (
  type?: number,
  limit?: number,
  isAll?: string,
  skip?: number
) => Promise<
  AxiosResponse<AxiosDefaultTypes<AxiosArticleListTypes>, any>
> = async (type = 0, limit = 2, isAll = '', skip = 0) => {
  return await axios.get<AxiosDefaultTypes<AxiosArticleListTypes>>(
    '/api/article/find',
    {
      params: {
        isAll,
        type,
        limit,
        skip
      }
    }
  )
}

// 获取文章详细信息
/**
 *
 * @param articleID 文章ID
 * @returns 文章信息
 */
export const getArticleInfo: (
  articleID: string
) => Promise<AxiosResponse<AxiosDefaultTypes<AxiosArticleInfoTypes>, any>> = (
  articleID: string
) => {
  return axios.get<AxiosDefaultTypes<AxiosArticleInfoTypes>>(
    '/api/article/findInfo',
    {
      params: {
        articleID
      }
    }
  )
}

// 请求富文本内容
/**
 *
 * @param editorUrl 富文本路径
 * @returns
 */
export const getEditorInfo: (
  editorUrl: string
) => Promise<AxiosResponse<AxiosDefaultTypes<AxiosArticleEditorTypes>, any>> = (
  editorUrl: string
) => {
  return axios.get<AxiosDefaultTypes<AxiosArticleEditorTypes>>(
    '/api/article/findEditorInfo',
    {
      params: {
        editorUrl
      }
    }
  )
}
